home *** CD-ROM | disk | FTP | other *** search
- Dear CA-Clipper 5.2 Developer, This file contains:
-
- A. The instructions for applying the CA-Clipper 5.2c patch to any
- North American version of CA-Clipper 5.2 including: 5.20, 5.2a
- or 5.2b. Please review these instructions carefully before
- attempting to apply the patch.
-
- B. The problem resolutions contained in the CA-Clipper 5.2c patch.
-
- C. A technical note pertaining to a problem within the RLOCK() and
- DBRLOCK() functions.
-
-
- ==============================================================================
- A. Instructions for patching 5.2 (any rev.) to 5.2c (rev. 204).
-
- REQUIRED FILES FOR PERFORMING UPDATE:
-
- 52CUS.EXE A self extracting ZIP file that may be
- downloaded from the CLIPPER forum (library 0)
- on CompuServe. (GO CLIPPER).
-
- PATCH.EXE Updating engine required for use with all 52C
- *.RTPs. This file is also in Library 0 of the
- CLIPPER CompuServe forum.
-
-
- CONTENTS OF 52CUS.EXE:
-
- INSTALL.EXE Installation engine required for performing the
- CA-Clipper 5.2c installation patch.
-
- DISK.ID Installation identification file.
-
- INSTALL.DAT Installation script file.
-
- CLP52INC.LIF Compressed update file for CLIPPER5\INCLUDE
-
- 52CDBU.LIF Compressed update file for CLIPPER5\SOURCE\DBU
-
- 52COBJ.LIF Compressed update file for CLIPPER5\OBJ
-
- 52CRL.LIF Compressed update file for CLIPPER5\SOURCE\RL
-
- 52CSAMPL.LIF Compressed update file for CLIPPER5\SOURCE\SAMPLE
-
- 52CSYS.LIF Compressed update file for CLIPPER5\SOURCE\SYS
-
- CLP52BIN.RTP Update file for CLIPPER5\BIN
-
- CLP52LIB.RTP Update file for CLIPPER5\LIB
-
- CLP52NG.RTP Update file for NG
-
- 52CUS.TXT This file.
-
-
- UPDATE PROCESS:
-
- 1. o Download the 52CUS.EXE file from Compuserve.
-
- 2. o Make sure that you have placed PATCH.EXE in a directory
- which is in your DOS path.
-
- 3. o Move to your CA-Clipper 5.2 directory.
- EXAMPLE: C:\> CD\CLIPPER5
-
- 4. o Backup your current version of CA-Clipper.
-
- 5. o If you have applied either the CA-Clipper 5.2a or 5.2b patch,
- your BIN, LIB, INCLUDE and SOURCE\SAMPLE sub-directories may
- contain prior versions of CA-Clipper 5.2. These sub-directories
- may cause the wrong version to be updated. Therefore, you must
- remove them from the CA-Clipper 5.2 directory structure before
- applying the CA-Clipper 5.2c patch. This can be accomplished
- be either deleting them or moving them out the CA-Clipper 5.2
- directory structure. If you have not applied the
- CA-Clipper 5.2a or the 5.2b patch, you may skip this step and
- proceed to step 6.
- EXAMPLE: C:\CLIPPER5> del c:\clipper5\bin\backup
- C:\CLIPPER5> rd c:\clipper5\bin\backup
- C:\CLIPPER5> del c:\clipper5\lib\backup
- C:\CLIPPER5> rd c:\clipper5\lib\backup
- C:\CLIPPER5> del c:\clipper5\include\backup
- C:\CLIPPER5> rd c:\clipper5\include\backup
- C:\CLIPPER5> del c:\clipper5\source\sys\backup
- C:\CLIPPER5> rd c:\clipper5\source\sys\backup
-
- 6. o Move to the disk drive and directory where the patch files are
- stored.
- EXAMPLE: C:\CLIPPER5> CD\52CUS
-
- 7. o Insert a blank formated diskette in the A: drive and move to it.
- EXAMPLE: C:\52CUS> A:
-
- 8. o Execute the 52CUS.EXE file.
- EXAMPLE: A:\> C:52CUS
-
- 9. o Execute the installation program and follow it's simple
- instructions.
- EXAMPLE: A:\> INSTALL
-
- 10. o Compare the date and time stamps of the updated files against
- the file list (below). If you have encountered a problem that
- you are unable to correct, call your CA-Clipper Level-I
- Technical Support representative.
-
-
- 11. o If you have applied the CA-Clipper 5.2c patch in a directory
- other than the one into which you installed the original
- CA-Clipper 5.2 version, you must make sure that your
- PATH, INCLUDE, OBJ, and LIB environment variables have been
- correctly set to point to the updated version of CA-Clipper.
- Example:
- (Scenario: You installed CA-Clipper 5.2 in C:\CLIPPER5
- and later renamed the directory (or moved the files)
- to C:\CLIP52C.)
- A:\ SET PATH=C:\CLIP52C\BIN
- A:\ SET INCLUDE=C:\CLIP52C\INCLUDE
- A:\ SET OBJ=C:\CLIP52C\OBJ
- A:\ SET LIB=C:\CLIP52C\LIB
-
- NOTE: You should also change these settings in your AUTOEXEC.BAT file.
-
- 12. o Move to your DBU directory, define RTLINK's behavior and
- re-compile DBU.
- EXAMPLE:
- A:\> C:
- C:\NG> CD \CLIPPER5\SOURCE\DBU
- C:\CLIPPER5\SOURCE\DBU> SET RTLINKCMD=
- C:\CLIPPER5\SOURCE\DBU> RMAKE DBU
-
- o Copy DBU.EXE to your BIN directory.
- EXAMPLE:
- C:\CLIPPER5\SOURCE\DBU> COPY DBU.EXE C:\CLIPPER5\BIN
-
- o Delete the executable and object files that were created
- during the re-compilation process.
- EXAMPLE:
- C:\CLIPPER5\SOURCE\DBU> DEL *.exe
- C:\CLIPPER5\SOURCE\DBU> DEL *.obj
-
- 13. o Move to your RL directory, re-compile RL.
- EXAMPLE:
- C:\CLIPPER5\SOURCE\DBU> CD \CLIPPER5\SOURCE\RL
- C:\CLIPPER5\SOURCE\RL> RMAKE RL
-
- o Copy RL.EXE to your BIN directory.
- EXAMPLE:
- C:\CLIPPER5\SOURCE\RL> COPY RL.EXE C:\CLIPPER5\BIN
-
- o Delete the executable and object files that were created
- during the re-compilation process.
- EXAMPLE:
- C:\CLIPPER5\SOURCE\RL> DEL *.exe
- C:\CLIPPER5\SOURCE\RL> DEL *.obj
-
- 14. o Move to your PE directory, re-compile PE.
- EXAMPLE:
- C:\CLIPPER5\SOURCE\RL> CD \CLIPPER5\SOURCE\PE
- C:\CLIPPER5\SOURCE\PE> RMAKE PE
-
- o Copy PE.EXE to your BIN directory.
- EXAMPLE:
- C:\CLIPPER5\SOURCE\PE> COPY PE.EXE C:\CLIPPER5\BIN
-
- o Delete the executable and object files that were created
- during the re-compilation process.
- EXAMPLE:
- C:\CLIPPER5\SOURCE\PE> DEL *.exe
- C:\CLIPPER5\SOURCE\PE> DEL *.obj
-
- 15. o Move to your PLL directory, rebuild BASE52.PLL and BASE52.PLT.
- EXAMPLE:
- C:\CLIPPER5\SOURCE\PE> CD \CLIPPER5\PLL
- C:\CLIPPER5\PLL> RTLINK @BASE52
-
- o Do not become alarmed if the message: "Undefined Symbols...
- should be resolved at EXE generation" appears during this
- step.
-
- 16. o The update process is now complete.
-
-
- LIST OF CHANGED FILES:
-
- o This is a list of all files that have changed since the
- release of CA-Clipper 5.2.
-
- o The files that have a date stamp of 03-15-93 and a time stamp
- of 5:21am have been updated by the CA-Clipper 5.2a patch.
-
- o The files that have a date stamp of 06-10-93 and a time stamp
- of 5:22pm have been updated by the CA-Clipper 5.2b patch.
-
- o The files that have a date stamp of 07-07-93 and a time stamp
- of 12:00pm have been updated by the CA-Clipper API diskette.
-
- o The files that have a date stamp of 08-06-93 and a time stamp
- of 5:23pm have been updated by the CA-Clipper 5.2c patch.
-
- o The files: DBU.EXE, RL.EXE, PE.EXE, BASE52.PLL and BASE52.PLT
- will will have the date and time stamp of when they were most
- recently re-built.
-
- o All other files should have a date stamp of 02-15-93 and a
- time stamp of 5:20am. These are the files that have never
- been updated by any of the CA-Clipper 5.2 patches.
-
- o Directory of C:\CLIPPER5\BIN
-
- CLD HLP 19677 06-10-93 5:22p
- CLD EXE 54351 08-06-93 5:23p
- CLIPPER EXE 200644 08-06-93 5:23p
-
-
- o Directory of C:\CLIPPER5\INCLUDE
-
- CLIPDEFS H 1703 06-10-93 5:22p
- RULES RMK 2312 07-07-93 12:00p
- EXTEND API 2194 08-06-93 5:23p
- EXTEND H 238 08-06-93 5:23p
- FILESYS API 2652 08-06-93 5:23p
- GT API 2734 08-06-93 5:23p
- INKEY CH 8579 08-06-93 5:23p
- ITEM API 1802 08-06-93 5:23p
- RDD API 27714 08-06-93 5:23p
- STD CH 51452 08-06-93 5:23p
- VM API 1093 08-06-93 5:23p
- ACHOICE CH 951 08-06-93 5:23p
- ERROR API 2090 08-06-93 5:23p
- FM API 811 08-06-93 5:23p
- RDDSYS CH 342 08-06-93 5:23p
-
-
- o Directory of C:\CLIPPER5\LIB
-
- CLD LIB 80719 06-10-93 5:22p
- ANSITERM LIB 11809 06-10-93 5:22p
- SAMPLES LIB 53891 06-10-93 5:22p
- DBFNDX LIB 27175 06-10-93 5:22p
- NOVTERM LIB 13345 06-10-93 5:22p
- PCBIOS LIB 13857 06-10-93 5:22p
- TERMINAL LIB 13857 06-10-93 5:22p
- CLIPPER LIB 513181 08-06-93 5:23p
- DBFNTX LIB 38977 08-06-93 5:23p
- EXTEND LIB 126905 08-06-93 5:23p
- DBFCDX LIB 107993 08-06-93 5:23p
-
-
- o Directory of C:\CLIPPER5\OBJ
-
- CT2PATCH OBJ 4703 03-15-93 5:21a
- NTXLOCK2 OBJ 302 06-10-93 5:22p
- CDXLOCK OBJ 6679 08-06-93 5:23p
-
-
- o Directory of C:\CLIPPER5\SOURCE\DBU
-
- DBUNET PRG 8931 06-10-93 5:22p
- DBUCOPY PRG 17556 08-06-93 5:23p
- DBUVIEW PRG 67609 08-06-93 5:23p
-
-
- o Directory of C:\CLIPPER5\SOURCE\RL
-
- RLDIALG PRG 10626 06-10-93 5:22p
- RL RMK 436 06-10-93 5:22p
- RLBACK PRG 40489 08-06-93 5:23p
- RLFRONT PRG 40165 08-06-93 5:23p
-
-
- o Directory of C:\CLIPPER5\SOURCE\SAMPLE
-
- BROWSE PRG 10294 06-10-93 5:22p
- TBDEMO PRG 12398 06-10-93 5:22p
-
-
- o Directory of C:\CLIPPER5\SOURCE\SYS
-
- FRMBACK PRG 17966 08-06-93 5:23p
- FRMRUN PRG 28512 08-06-93 5:23p
-
-
- ==============================================================================
- B. Problems resolved by CA-Clipper 5.2c:
-
-
- 1. Fixed most instances of the DBFNTX/1210 error.
-
- 2. Fixed INDEXKEY() so that when it is called with an invalid
- order argument it will no longer corrupt the data at memory
- location 0000:0000 in dos and will no longer generate a
- General Protection Error in Exospace.
-
- 3. Fixed CMEM.OBJ (in Clipper.lib) so that the malloc(),
- _fmalloc(), free() and _ffree() memory allocation functions
- will return the correct information.
-
- 4. Fixed VM Integrity error when evaluating detached code
- blocks that are nested three or more deep.
-
- 5. Fixed VAL() so it no longer left justifys the result.
-
- 6. Fixed ACHOICE() so that it will not redraw the menu window
- after returning from the user specified function unless:
- A. the user specified function changes the number of
- elements in the menu array.
- B. the user specified function returned the new return
- code of AC_REDRAW (which can be found in ACHOICE.CH
- and has the numeric value of 4).
-
- 7. Fixed the Expanded Memory Manager so it will not attempt to
- use more than eight megabytes of EMM. Currently, Clipper
- can not take advantage of more than eight megabytes of EMM.
- Please note that the printed documentation is incorrect.
- This was the cause of many corruptions on systems that had
- more than eight megabytes of expanded memory.
-
- 8. Fixed an incorrect calculation in _xvalloc() that caused the
- Virtual Memory Manager to allocate 1K to much if the
- requested size + 16 (in bytes) was an even multiple of 1024.
-
- 9. Fixed an internal calculation that did not account for
- overflow when converting a segment:offset address to an
- absolute address. This could only be encountered by calling
- the VM API function:_xvalloc().
-
- 10. Fixed several problems in the DBFCDX replaceable database
- driver.
-
- 11. Fixed a compatability problem between CA-Clipper Tools-II and
- CA-Clipper 5.2x. Developers using CA-Clipper Tools-II
- noticed unresolved symbols at link time. The CT2PATCH.OBJ
- file will resolve these problems and should be included as an
- object on the link line. Please note that CT2PATCH.OBJ is
- only intended for use with CA-Clipper Tools-II, those not
- using CA-Clipper Tools-II should not include this file in
- their applications.
-
- 12. Fixed DBU so that closing a file with an associated filter
- will no longer cause a DBCMD/2001 error.
-
- 13. Fixed DBU so that performing a replace will no longer cause a
- "Lock Required" error.
-
- 14. Fixed REPORT FORM so header will print when creating a report
- whose width is greater than 254 characters.
-
- 15. Fixed REPORT FORM so that it now ejects properly for groups.
-
- 16. Fixed REPORT FORM so that double spaced forms will now print
- properly.
-
- 17. Determined that the EG_SYNTAX error in REPORT FORM was not
- caused by an empty database. It was caused by the absence of
- a field name for the report. This is the correct behavior.
-
- 18. Fixed REPORT FORM so that it will respect the "SUMMARY ONLY"
- option when requested.
-
- 19. Fixed REPORT FORM so that it no longer prints an extra form
- feed after the report is completed.
-
- 20. Fixed RL so that it will save entered data from all entry
- screens instead of only the current display screen.
-
- 21. Fixed RL so that it will no longer save the rightmost column
- when it is empty.
-
- 22. Fixed RL so that it accepts "T" or "F" in it's question
- fields. It previously was limmited to "Y" or "N".
-
-
-
- ==============================================================================
- C: Technical Note: RLOCK()/DBRLOCK() problem
-
-
- o Problem:
- RLOCK() and DBRLOCK() (without any parameter) will not reliably
- lock a record under certain circumstances, even though their
- return values (.T.) indicate success. This occurs when locking
- a record in the child database of a relation, after the record
- pointer has been repositioned by a SEEK or GOTO, but before the
- data has been accessed.
-
-
- o Solution:
- A workaround for this problem is to use DBRLOCK( RECNO() )
- instead of RLOCK() or DBRLOCK(). A simple way to implement this
- is:
-
- 1. Add the following statements to a copy of the std.ch header
- file:
- #translate RLOCK() => DBRLOCK( RECNO() )
- #translate DBRLOCK() => DBRLOCK( RECNO() )
-
- 2. Re-compile your program with the /u<file> option, where
- <file> is the modified STD.CH file.
-
-
- o EXAMPLE:
- use child shared new
- set index to childntx
- use parent shared new
- set relation to FieldOne into child
- goto 2
- ---------------> if ( rlock() ) // change this rlock() to dbrlock(recno())
- replace child->FieldTwo with parent->FieldTwo
- endif
- close data
- return
-
-
- o Note:
- This is a temporary workaround while a solution for the problem is
- being worked upon.
-
-
-
- ==============================================================================
- ==============================================================================